package com.cskaoyan.javase.oop1._7game._1pvz;

/**
 * 植物类
 *
 * @since 11:39
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Plant {
    // 属性共性,成员变量
    String name;
    int price;
    int hp;
    // 攻击力
    int damage;

    // 持有僵尸对象的引用,方便交互
    Zombie plantZ;


    // 构造器
    public Plant(String name, int price, int hp, int damage) {
        this.name = name;
        this.price = price;
        this.hp = hp;
        this.damage = damage;
    }


    /*
        植物的行为
        是需要和僵尸交互完成
        不能独立完成
        为了更好的实现对象间的交互
        常见的做法是
        将交互对象的引用作为自身成员变量持有
      */

    // 攻击的方法,需要知道攻击了哪个僵尸
    public void attack() {
        System.out.println(name + "正在攻击" + plantZ.name);
    }

    // 被攻击,需要知道被谁攻击,还要掉血
    public void beAttacked() {
        System.out.println(name + "正在被" + plantZ.name + "攻击,我还剩下" + (hp - plantZ.damage) + "点血量!");
    }
}
